Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems (“clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices.
Storage systems are being used extensively by different applications, for example, electronic mail (email) servers, database applications, virtual machines executed within virtual machine environments (for example, a hypervisor operating environment) and others to store data, protect the data using backups.
Databases may be stored in a DAG, where an active copy of a database is stored by one computing device (or node), while replicas of the database are stored in multiple nodes of the DAG. The replicas may be used to take over the active copy, if the active copy becomes unavailable or useable due to corruption.
In conventional DAGs, all database replicas are typically backed up, while the backup process is tied to the node that hosts a specific replica. This may be referred to as “host affinity” for taking backups. This approach is inefficient because backing up all database replicas wastes storage space. Furthermore, backing up an active, production copy of a database may affect the performance of the production copy because requests to access the database may not get processed efficiently while the production copy is being backed up. Continuous efforts are being made to develop technology for providing better storage services for databases operating in DAGs.